Dane zawierają ‘235790’ obserwacji po ‘50’ atrybutów każda. Poniżej znajduje się podsumowanie wartości dla każdego atrybutu.
lapply(solar_data[, c('idsito', 'idmodel', 'idbrand', 'ageinmonths')], summary)
## $idsito
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.1000 0.2250 0.2147 0.3250 0.4250
##
## $idmodel
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.1670 0.2080 0.2426 0.2920 0.7500
##
## $idbrand
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0830 0.1670 0.1519 0.1670 0.4170
##
## $ageinmonths
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.1250 0.3145 0.7190 1.0000
Pierwsze 3 zawierają informacje o identyfikatorze, modelu i marce czujnika. W tym zbiorze można wyróżnić 17 czujników, o 11 różnych modelach, wyprodukowanych przez 6 różnych producentów. Wszystkie wartości tych atrybutów zostały znormalizowane i zawierają się w przedziale <0:1>. Czwarty atrybut (tak samo znormalizowany) opisuje wiek danego czujnika, jego wartość jest stała dla każdego idsito.
lapply(solar_data[, c('anno', 'day', 'ora', 'data')], summary)
## $anno
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 2012 2012 2012 2012 2013 2013
##
## $day
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2520 0.4770 0.4812 0.7100 1.0000
##
## $ora
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 0.222 0.500 0.500 0.778 1.000
##
## $data
## Min. 1st Qu. Median
## "2012-01-02 02:00:00" "2012-07-02 11:45:00" "2012-12-31 23:00:00"
## Mean 3rd Qu. Max.
## "2012-12-31 22:44:54" "2013-07-02 11:15:00" "2013-12-31 20:00:00"
## NA's
## "34"
Powyższe atrybuty opisują czas dokonania pomiaru. Anno określa rok dokonania pomiaru i przyjmuje dwie wartości; 2012 i 2013. Day, jak sama nazwa wskazuje, określa dzień dokonania pomiaru. Przyjmuje 365 różnych wartości, co sugeruje, że odzwierciedla kalendarzowy dzień dla danego roku. Atrybut ora przyjmuje 19 różnych wartości, co sugeruje, że pomiary były dokonywane w 19 różnych godzinach dla różnych dób. Po przylrzeniu się wartościom atrybutu data można zauważyć, że pomiary dla każdego dnia były przeprowadzane w godzinach 2:00 - 20:00, co godzinę. Ostatni atrybut zawiera informacje zawarte w trzech poprzednich; rok, dzień, godzinę dokonania pomiaru w bardziej przystępnej postaci - jako (nieznormalizowany) ciąg znaków.
lapply(solar_data[, c('lat', 'lon')], summary)
## $lat
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4150 0.4370 0.4370 0.4495 0.4390 0.5530
##
## $lon
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1540 0.6200 0.6240 0.5711 0.6300 0.6910
Powyższe atrybuty opisują fizyczne położenie czujników. Wartości atrybutu lat opisują szerokość geograficzną, a lon długość. Zakres wartości atrybutu lat to <0.415:0.553>, co sugeruje, że czujniki położone były na podobnej szerokości geograficznej.
lapply(solar_data[, c('temperatura_ambiente', 'irradiamento', 'pressure', 'windspeed', 'humidity', 'dewpoint', 'windbearing', 'cloudcover', 'irr_pvgis_mod', 'icon')], summary)
## $temperatura_ambiente
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0450 0.2120 0.3480 0.3734 0.5300 0.8180
##
## $irradiamento
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0350 0.1091 0.2040 0.7100
##
## $pressure
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.7480 0.7530 0.6504 0.7550 0.7690
##
## $windspeed
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00000 0.04200 0.06600 0.07622 0.10200 0.69600
##
## $humidity
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1600 0.5400 0.7000 0.6844 0.8400 1.0000
##
## $dewpoint
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1390 0.5350 0.6190 0.6055 0.6830 0.8650
##
## $windbearing
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.3000 0.4780 0.4512 0.6600 0.7690
##
## $cloudcover
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000 0.230 0.310 0.359 0.510 1.000
##
## $irr_pvgis_mod
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0560 0.1767 0.3250 1.0000
##
## $icon
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0830 0.6670 0.4623 0.6670 0.7500
Powyższe atrybuty opisują aktualną pogodę “mierzoną” podczas zapisu danych przez czujnik. Opisują odpowiednio: temperaturę powietrza, stopień nasłonecznienia, ciśnienie atmosferyczne, prędkość wiatru, wilgotność, temperaturę punktu rosy, zachmurzenie i ponownie stopień nasłonecznienia, tym razem generowany przez pogodowe API (Photovoltaic Geographical Information System). Ostatnia zmienna (icon) przyjmuje tylko 7 różnych wartości, co sugeruje, że może reprezentować “obecny stan pogody” (ikonę), obliczany przez czujnik lub, co jest bardziej prawdopodobne, dostarczany przez pogodowe API. Zdroworozsądkowo nasłonecznienie powinno pełnić kluczową rolę przy generowaniu energii przez panele słoneczne, zatem podwojenie obserwacji w tym przypadku zdaje się być całkowicie uzasadnione; umożliwa to wyeliminowanie potencjalnych błędnych pomiarów.
lapply(solar_data[, c('altitude', 'azimuth', 'dist')], summary)
## $altitude
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1110 0.4190 0.5640 0.5464 0.6810 0.8840
##
## $azimuth
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1280 0.2950 0.4250 0.4546 0.6350 0.8180
##
## $dist
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.1913 0.4590 0.4686 0.7268 1.0000
Azimuth to azymut, czyli kąt zawarty między północną częścią południka odniesienia a danym kierunkiem poziomym. Zmienna altitude opisuje wysokość, prawdopodobnie słońca nad horyzontem, ponieważ jej wartości rosną do godzin południowych, a następnie maleją. Zmienna dist jest taka sama dla wszystkich czujników oraz zmienia się każdego dnia. Przyglądając się wykresowi zależności jej wartości od day(czyli dnia roku) łatwo zauważyć jej cykliczność. Prawdopodobnie określa ona odległość Ziemi od Słońca w danym dniu. Ta grupa atrybutów pozwala określić położenie słońca względem czujnika.
ggplot() + geom_line(data = solar_data, aes(x = day, y = dist)) + labs(title="Zmiana atrybutu dist w dniach roku")
lapply(solar_data[, 33:47], summary)
## $pcnm1
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.3770 0.3780 0.4224 0.3800 1.0000
##
## $pcnm2
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2500 0.3770 0.3538 0.4220 0.9720
##
## $pcnm3
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.5510 0.6050 0.6045 0.7300 1.0000
##
## $pcnm4
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.3630 0.5310 0.5189 0.6340 1.0000
##
## $pcnm5
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.3310 0.4270 0.4165 0.4620 1.0000
##
## $pcnm6
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.3390 0.4930 0.4941 0.4930 1.0000
##
## $pcnm7
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0310 0.0520 0.1142 0.1140 1.0000
##
## $pcnm8
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2040 0.4120 0.4034 0.5110 1.0000
##
## $pcnm9
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.5270 0.5320 0.5371 0.6000 1.0000
##
## $pcnm10
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.5530 0.6190 0.6276 0.7170 1.0000
##
## $pcnm11
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2570 0.3270 0.3236 0.3270 1.0000
##
## $pcnm12
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.7480 0.7600 0.7568 0.8840 1.0000
##
## $pcnm13
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1370 0.6140 0.6140 0.6501 0.7380 1.0000
##
## $pcnm14
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.4320 0.4730 0.4893 0.5300 1.0000
##
## $pcnm15
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.6120 0.6140 0.5709 0.6150 1.0000
Atrybuty PCNM (z angielksiego Principal coordinates of neighbour matrices) to najprawdopodobniej zmienne pozwalające opisać dokładniej położenie każdego czujnika względem innych czujnikóW. Pozwalają na bardziej wnikliwą analizę położenia dla każdego z czujników poprzez stworzenie własnej macierzy sąsiedztwa dla każdego z nich. Wartości tych parametrów są stałe dla idsito.
lapply(solar_data[, c(20:26, 30:32, 49)], summary)
## $tempi
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0090 0.0730 0.1110 0.1225 0.1260 0.9830
##
## $irri
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.108 0.216 0.220 0.222 0.222 1.000
##
## $pressurei
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.000000 0.000000 0.000000 0.000237 0.000000 1.000000
##
## $windspeedi
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00000 0.03700 0.03800 0.03852 0.03900 1.00000
##
## $humidityi
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.03400 0.04400 0.04400 0.06384 0.06200 0.57900
##
## $dewpointi
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0630 0.1140 0.1140 0.1194 0.1180 0.4150
##
## $windbearingi
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.3360 0.3360 0.3455 0.3390 1.0000
##
## $azimuth
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.1280 0.2950 0.4250 0.4546 0.6350 0.8180
##
## $altitudei
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0960 0.1360 0.2055 0.2660 0.9820
##
## $azimuthi
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.2090 0.2880 0.3653 0.4820 1.0000
##
## $irri_pvgis_mod
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.0250 0.1580 0.1940 0.1967 0.2130 1.0060
Atrybuty pogodowe z i na końcu zapewne są wynikiem transformacji wartości tych samych atrybutów bez litery i. Wydaje się być prawdopodobne, że do obliczenia ich wartości posłużył, wspomniany w poprzedniej grupie atrybutów, aglorytm radzący sobie z problemem autokorelacji przestrzennej, wynikającej z bliskiego położenia czujnikóW.
lapply(solar_data["kwh"], summary)
## $kwh
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0000 0.0000 0.0490 0.1688 0.3320 1.0000
Ostatni analizowany atrybut to znormalizowana do przedziału <0:1> wartość wytworzonej energii przez dany czujnik w danym dniu o danej godzinie. Wartość tej zmiennej ma docelowo zostać “przewidziana” na podstawie wartości pozostałych parametrów.
Stworzono macierz korelacji pomiędzy (prawie)wszystkimi atrybutami (bez atrybutów: “data” oraz “idsito”)
#cor <- rcorr(as.matrix(solar_data[, !names(solar_data) %in% c("data", "idsito")]))
corr_matrix <- cor(as.matrix(solar_data[, !names(solar_data) %in% c("data", "anno")]), method = "spearman")
corrplot(as.matrix(corr_matrix), order = "FPC", type="lower", tl.col = "black", tl.srt = 45)
Analizując powyższą macierz pod kątem korelacji atrybutu kwh z pozostałymiy atrybutami można łatwo zauważyć silną odwrotną korelację z wartością humidity(wilgotność) co jest logiczne, ponieważ opad deszczu skutecznie zmniejsza ilość wytwarzanej energii przez panel słoneczny. Atrybut kwh jest skorelowany silnie z wartością irri, czyli nasłonecznienia oraz słabo z atrybutami opisującymi temperaturę.
Można także zauważyć na niektórych atrybutach słabą odwrotną korelację pomiędzy parami atrybut-atrybuti. (być może i jak invert?)
solar_data_monthYear <- solar_data %>% mutate(month_year = format(as.POSIXct(data), "%Y/%m")) %>% group_by(idsito, month_year) %>% summarise(sum_of_kwh = sum(kwh))
plot <- ggplot() + geom_line(data=solar_data_monthYear, aes(x=month_year, y=sum_of_kwh, group=idsito, color=factor(x = 1*idsito, labels=c(1:17)))) + labs(color="Legenda") + labs(title="Miesięczna produkcja energi dla czujników", x="year_month") +
theme(axis.text.x=element_text(angle=90, vjust=0.5), axis.title.x = element_text(vjust=2.5))
ggplotly(plot)
Powyższy interaktywny wykres pozwala porównać sumę wyprodukowanej energii przez czujniki w każdym miesiącu.
Analizując wykres można dojść do następujących wniosków: * czujniki ulegają awariom; potencjalne awarie występują w miejscach drastycznego spadku produkowanej energii do 0 (np. czujnik 16 w sierpniu 2013r., ), * krzywa miesięcznej sumy produkowanej energii dla grupy czujników ma podobny kształt, * część czujników odnotowała bardzo niską produkcję energii w styczniu 2013r., efekt ten mógł być spowodowany przykryciem ich przez śnieg * czujnik 10 zdecydowanie lepiej prosperował w ostatnim kwartale 2012 w porównaniu do reszty.
W samym zbiorze problem pustych danych nie występuje - wszystkie dane na pierwszy rzut oka zdają się być racjonalne. Po analizie wykresu z poprzedniego rozdziału można zauważyć problem awarii czujnika, czyli brakujących pomiarów wyprodukowanej energii przez dany czujnik. Problem ten występuje zapewne nie tylko w tym jednym przypadku (czujnik 16, sierpień 2013), ale również przy innych pomiarach. Dla stworzenia najlepszego modelu predykcji należy zapewnić najlepszą jakość pomiarów dla atrybutów najsilniej skorelowanych z kwh. W związku z tym, brakujące pomiary kwh (gdy wartość wynosi 0), gdy nasłonecznienie ma wartość większą od 0 i takie, które zanotowały niezerową produkcję energii przy zerowym nasłonecznieniu należy rozważyć ponownie i przypisać im bardziej racjonalne wartości.
getMonthsMean <- function(dataset, id, yearNumb, monthNumb, hour) {
return(dataset %>% filter(idsito == id) %>% filter(anno != yearNumb) %>% filter(month == monthNumb) %>% filter(ora == hour) %>% select(kwh) %>% colMeans() %>% unname())
}
solar_data_repaired <- solar_data %>% mutate(week = strftime(data, format="%W"), month = strftime(data, format="%m"))
solar_data_repaired <- solar_data_repaired %>% group_by(idsito, anno, week, ora) %>%
mutate(kwh = ifelse(sum(kwh) == 0 & idsito == 0.4 & anno == 2013 & month == "08", getMonthsMean(solar_data_repaired, idsito, anno, month, ora), kwh))
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in idsito == id: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
## Warning in anno != yearNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in month == monthNumb: długość dłuszego obiektu nie jest
## wielokrotnością długości krótszego obiektu
## Warning in ora == hour: długość dłuszego obiektu nie jest wielokrotnością
## długości krótszego obiektu
#próba uzupełnienia brakujących wartości czujnika 16
solar_data_repaired <- solar_data_repaired %>% group_by(idsito, anno, week, ora) %>% mutate(kwh = ifelse(kwh == 0 && irradiamento > 0, mean(kwh), kwh))
solar_data_repaired <- solar_data_repaired %>% group_by(idsito, anno, week, ora) %>% mutate(irradiamento = ifelse(irradiamento == 0 && kwh > 0, mean(irradiamento), irradiamento))
set.seed(23) #kod zapewniający powtarzalność wyników
solar_data_repaired <- solar_data_repaired %>% filter(idsito != 0.25) #usunięcie pomiarów z czujnika 10
#test/learning data
#use some regression algorithms
#RMSE
Sekcja próbująca stworzyć regresor Usunięcie pomiarów czujnika 10.
#find best + analyze
Jaki model i czy ma sens.